<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      /* 填写样式 */
    </style>
  </head>

  <body>
    <!-- 填写标签 -->
    <script type="text/javascript">
      /**
       *  只有一句但有两个需要注意的点，
       *  首先注意为什么我的partialUsingArguments是正常函数但返回的却是箭头函数呢，
       *  难道是我无聊换着玩吗，nonono，这里是为了直接访问partialUsingArguments的参数变量arguments
       *  如果写的是普通函数还得提前用that储存上一个函数作用域的this，再在第二个函数调用上一个函数作用域的this
       *
       *  其次就是对展开运算符的使用，展开合并删减再展开，细细理解一下进行了
       */
      // 填写JavaScript
      function partialUsingArguments(fn) {
        return (...args) => fn(...[...arguments].slice(1), ...args);
      }

      function aaa() {
        var a = 1;
        var b = 2;
        var c = 3;
        var d = 4;
        var test = function (first, second, third, forth) {
          console.log(first, second, third, forth);
          return first + second + third + forth;
        };
        return partialUsingArguments(test, a, b)(c, d);
      }
      console.log(aaa());
    </script>
  </body>
</html>
